require('page/common/header/index.js');
var _util = require('util/util.js')
var _catalog_service = require('service/catalog-service.js');
var _cart_service = require('service/cart-service.js');

var listTemplate = require('./index.string');
const keywords = require('ajv-keywords');

    
var catalogList = {
    // listData: {
    //     title: '',
    //     headList: [],
    //     productList: {},
    //     itemList: {},
    //     item: [],
    // },
    listData: {
        title: '',
        headList: ['Item ID', 'Product ID', 'Description', 'List Price', ''],
        itemList: [],
    },
    productHeadList: [
        'Product Id',
        'Name'
    ],
    itemHeadList: [
        'Item ID',
        'Product ID',
        'Description',
        'List Price',
        ''

    ],

 
    init: function () {

        this.loadAccountInfo();
        this.bindEvents();
        return this;
    },
    bindEvents: function () {
        $(document).delegate('.addToCart', 'click', function () {
            var itemId = this.id;
            // 调用service方法添加到购物车
            _cart_service.insertItem(itemId,
                function (resp) {
                    if (resp) {
                        if (confirm("添加成功,是否需要跳转到购物车?")) {
                            window.location.href = './cart.html';
                        }
                        console.log('插入成功');
                    }
                    else {
                        console.log('插入失败');
                    }
                },
                function (error) {
                    console.log('error:' + error);
                }
            )
        })
    },

    loadAccountInfo: function () {
        var id = _util.getURLparam('id');
        var route = _util.getURLparam('route');
        var _this = this;


        if (route === 'product') {
            _catalog_service.getProductList(
                id,
                function (res) {
                    console.log(res);
                    if (res.status === 0) {
                        _this.listData.headList = _this.productHeadList;
                        _this.listData.title = id;
                        // 使用返回数据里的 data 字段
                        _this.listData.productList = res.data;
                        _this.listData.itemList = null;
                        _this.listData.item = null;
                        var result = _util.renderHtml(listTemplate, { listData: _this.listData });
                        console.log(result);
                        $('#Catalog').html(result);
                    } else {
                        alert("获取产品列表失败:" + res.msg);
                    }
                },
                function () {
                     // 请求错误处理
                }
            );

        }
        // else if (route === 'item') {
        //      // 通过productId获取单个产品的信息
        //     console.log(id);
        //     var productName;
        //     _catalog_service.getProduct(
        //         id,
        //     function (res) {
        //         console.log(res);
        //         if (res.status === 0) {
        //             // 设置表头（根据需要调整）
        //             _this.listData.headList = ['Product ID', 'Name', 'Description'];
        //             // 使用res.data对象（返回产品信息），包装成数组供模板遍历
        //             _this.listData.item = [res.data];
        //             // 清空其他数据块
        //             _this.listData.title = res.data.categoryId;
        //             _this.listData.productList = null;
        //             _this.listData.itemList = null;
        //             var result = _util.renderHtml(listTemplate, { listData: _this.listData });
        //             console.log(result);
        //             $('#Catalog').html(result);
        //         } else {
        //             alert("获取产品信息失败:" + res.msg);
        //         }
        //     },
        else if (route === 'item') {
            // 仅加载商品项列表
            _catalog_service.getItemList(id,
                function (res) {
                    if (res.status === 0) {
                        _this.listData.headList = _this.itemHeadList;
                        _this.listData.title = `商品项列表 - ${id}`; // 使用 id 或其他合适的值
                        _this.listData.productList = null;
                        _this.listData.itemList = res.data; // 确保使用 res.data
                        _this.listData.item = null;
                        var result = _util.renderHtml(listTemplate, { listData: _this.listData });
                        $('#Catalog').html(result);
                    } else {
                        alert("获取商品项失败:" + res.msg);
                    }
                },
                function (errMsg) {
                    console.error("请求失败：", errMsg);
                }
            );
        }

        // _catalog_service.getItem(
        //         id,
        //         function (resp) {
        //             console.log(resp);
        //             _this.listData.item = [resp];
        //             console.log(_this.listData.item);
        //             _this.listData.headList = null;
        //             _this.listData.title = null;
        //             _this.listData.productList = null;
        //             _this.listData.itemList = null;
        //             var result = _util.renderHtml(listTemplate, { listData: _this.listData });
        //             console.log(result);
        //             $('#Catalog').html(result);


        //         },
        //         function (error) {

        //         }
        //     )
        //加载item
        else if (route === 'detail') {
            console.log(id);
            _catalog_service.getItem(
                id,
                function (resp) {
                    console.log(resp);
                    if (resp.status === 0) {  // 添加状态检查
                        _this.listData.item = [resp.data];  // 使用resp.data,因为后端返回的数据在data字段中
                        console.log(_this.listData.item);
                        _this.listData.headList = null;
                        _this.listData.title = null;
                        _this.listData.productList = null;
                        _this.listData.itemList = null;
                        var result = _util.renderHtml(listTemplate, { listData: _this.listData });
                        console.log(result);
                        $('#Catalog').html(result);
                    } else {
                        alert("获取商品详情失败：" + resp.msg);
                    }
                },
                function (error) {
                    console.error("请求失败：", error);
                }
            )
        }
        else if (route === 'search') {

            // console.log(keyword);
            _catalog_service.searchProduct(
                { keyword: id },
                function (res) {
                    _this.listData.headList = null;
                    _this.listData.title = null;
                    _this.listData.productList = res;
                    _this.listData.itemList = null;
                    _this.listData.item = null;
                    var result = _util.renderHtml(listTemplate, { listData: _this.listData });
                    console.log(result);
                    $('#Catalog').html(result);
                },
                function (errMsg) {
                    console.log("errMsg" + errMsg);
                }
            );
        }
    },

    // loadItems: function () {
    //     var productId = _util.getURLparam('id'); // 从 URL 获取 productId
    //     var route = _util.getURLparam('route');

    //     if (route === 'item') {
    //         _catalog_service.getItemList(productId, 
    //             (res) => {
    //                 if (res.status === 0) {
    //                     this.listData.itemList = res.data;
    //                     this.listData.title = "Items of Product " + productId;
    //                     var result = _util.renderHtml(listTemplate, { listData: this.listData });
    //                     $('#Catalog').html(result);
    //                 } else {
    //                     alert("Failed to load items: " + res.msg);
    //                 }
    //             },
    //             (errMsg) => {
    //                 console.error("Error loading items: ", errMsg);
    //             }
    //         );
    //     }
    // }
};

module.exports = catalogList.init();